/*
 * 这是一个使用Qt Quick创建的简单窗口应用程序，展示了一个带有右键菜单的功能。
 * 该菜单包含"放大"和"缩小"两个选项，并设置了对应的快捷键。
 */
import QtQuick 2.15    // 导入QtQuick模块，用于创建基本的QML元素
import QtQuick.Window 2.15  // 导入Window模块，用于创建窗口
import QtQuick.Controls 2.15  // 导入Controls模块，用于创建菜单等UI控件

// 主窗口定义
Window {
    width: 640    // 设置窗口宽度为640像素
    height: 480   // 设置窗口高度为480像素
    visible: true // 设置窗口可见
    title: qsTr("Menu")  // 设置窗口标题为"Menu"


    // 放大动作定义
    Action {
        id: zoomInAction          // 为动作指定唯一标识符
        text: qsTr("放大")         // 设置显示文本
        shortcut: "Ctrl+="        // 设置快捷键为Ctrl++
        onTriggered: console.log("放大")  // 触发时在控制台输出"放大"
    }


    // 缩小动作定义
    Action {
        id: zoomOutAction         // 为动作指定唯一标识符
        text: qsTr("缩小")         // 设置显示文本
        shortcut: "Ctrl+-"        // 设置快捷键为Ctrl+-
        onTriggered: console.log("缩小")  // 触发时在控制台输出"缩小"
    }

    // 移动定义
    Action {
        id: moveAction
        text: qsTr("移动")
        shortcut: "Ctrl+M"
        onTriggered: console.log("移动")
    }

    // 关闭定义
    Action {
        id: closeAction
        text: qsTr("关闭")
        shortcut: "Ctrl+C"
        onTriggered: console.log("关闭")  // 触发时在控制台输出"关闭
        // onTriggered: Qt.quit()  // 触发时退出应用程序
    }


    Action {
        id: fullscreenAction
        text: qsTr("全屏")
        shortcut: "F11"
        onTriggered: console.log("全屏")
    }

    Action {
        id: resetZoomAction
        text: qsTr("缩放")
        shortcut: "Ctrl+0"
        onTriggered: console.log("重置缩放")
    }

    // 鼠标区域定义，用于捕获鼠标事件
    MouseArea {
        anchors.fill: parent      // 填充整个父窗口
        acceptedButtons: Qt.RightButton  // 只接受右键点击
        onClicked: {
        zoomMenu.x = mouse.x      // 设置菜单的x坐标为鼠标点击位置的x坐标
        zoomMenu.y = mouse.y      // 设置菜单的y坐标为鼠标点击位置的y坐标
        zoomMenu.open()       // 右键点击时打开菜单

        }
    }

    Menu {
        id: zoomMenu
        title: qsTr("菜单")

        MenuItem {
            action: zoomInAction
        }

        MenuItem {
            action: zoomOutAction
        }

        Menu {  // 直接使用Menu作为子菜单
            title: qsTr("视图")
            
            MenuItem {
                action: fullscreenAction
            }
            
            MenuItem {
                action: resetZoomAction
            }
        }

        MenuItem {
            action: moveAction
        }
        
        MenuItem {
            action: closeAction
        }
    }


    MenuBar {
        id: menuBar

        Menu {
            id: fileMenu
            title: qsTr("&文件")
            
            Menu{
                title: qsTr("(&O)打开")
                MenuItem {
                    text: qsTr("打开文件")
                    onTriggered: console.log("打开文件")
                }
            }
            Menu{
                title: qsTr("(&S)保存")
                MenuItem {
                    text: qsTr("保存文件")
                    onTriggered: console.log("保存文件")
                }
            }
            Menu{
                title: qsTr("&关闭")
                MenuItem {
                    text: qsTr("关闭文件")
                    onTriggered: console.log("关闭文件")

                }
            }
        }

        Menu {
            id: editMenu
            title: qsTr("&编辑")
            // ...
        }

        Menu {
            id: viewMenu
            title: qsTr("&查看")
            // ...
        }

        Menu {
            id: helpMenu
            title: qsTr("&帮助")
            // ...
        }
    }





}
